home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
cpp_libs
/
rjs.lha
/
RJS
/
CmdLine
/
src
/
CmdLineWord.C
< prev
next >
Wrap
C/C++ Source or Header
|
1991-06-14
|
850b
|
60 lines
#include "CmdLine.h"
#include <stdio.h>
RJS_CmdLineWord::RJS_CmdLineWord(char **av)
{
scan=NULL;
argv=av;
peek_flag=0;
}
RJS_CmdLineWord::RJS_CmdLineWord(RJS_String &s, int dcl)
{
if (dcl) scan = new RJS_StringScan(s,RJS_StringScan::ByMatch,SSdcl_word);
else scan = new RJS_StringScan(s,RJS_StringScan::ByMatch,SSunix_word);
argv=NULL;
peek_flag=0;
}
int RJS_CmdLineWord::operator()(RJS_String &w)
{
if (peek_flag) {
w=peeked;
peek_flag=0;
return 1;
} else w="";
if (scan) return (*scan)(w);
else {
if (! *argv ) return 0;
w = *argv;
argv++;
return 1;
}
}
int RJS_CmdLineWord::peek(RJS_String &w)
{
if (peek_flag) {
w=peeked;
return 1;
}
int flag=RJS_CmdLineWord::operator()(w);
if (flag) {
peek_flag=1;
peeked=w;
}
return flag;
}
RJS_CmdLineWord::~RJS_CmdLineWord()
{
if (scan) delete scan;
}